jQuery.extend({
  createBanner: function(json) {
    var banner = function(json) {
      this.$box = $("#" + json.id);
      this.key = null;
      this.baseDom = [
        '<div class="dmui-banner-box">',
        '<div class="dmui-banner-images" alt="图片区域"></div>',
        '<div class="dmui-banner-lamp" alt="跑马灯区域"></div>',
        '</div>'
      ].join("");
    };
    //主入口
    banner.prototype.init = function(json) {
      /**
       * json说明：
       * 	id :  装载容器id（必须）
       * 	showTime ： 停留时间
       * 	transitionTime ： 切换时间
       * 	data : [
       * 		{
       * 			title :  提示文字
       * 			img : 轮播图片地址 （必须）
       * 			href : 跳转（相对路径）
       * 		}
       * 		.......
       * 		.......
       * 	]
       ***/
      if (!json.id) {
        console.log("error : 无法找到加载轮播图的容器");
        return;
      }
      json.showTime || (json.showTime = 3000);
      json.transitionTime || (json.transitionTime = 500);

      this.$box.html(this.baseDom);
      this.initData(json);
      this.interval(json);
      this.event(json);

    };
    //加载轮播图、提示文字
    banner.prototype.initData = function(json) {
      for (var i = 0, len = json.data.length, arr = ["<ul class='dmui-banner-ul'>"], lamp = []; i < len; i++) {
        arr.push(["<li class='dmui-banner-li'  data-index='" + i + "'>",
          '<a href="' + (json.data[i].Banner_Href ? json.data[i].Banner_Href : "javascript:;") + '"><img class="dmui-banner-img" src="' + configCommon.pic + json.data[i].Banner_Img + '" />',
          '<p class="dmui-banner-title">' + json.data[i].Banner_Title + '</p>',
          "</a></li>"
        ].join(""));
        lamp.push('<i data-index="' + i + '" class="' + (i == 0 ? 'active' : '') + '"></i>');
      }
      arr.push("</ul>");
      $(".dmui-banner-images", this.$box).html(arr.join(""));
      $(".dmui-banner-lamp", this.$box).html(lamp.join(""));
      $(".dmui-banner-ul", this.$box).css("width", (100 * json.data.length + 5) + "%");
      $(".dmui-banner-li", this.$box).css("width", this.$box.css("width"));
    };
    //注册定时器并启动动画
    banner.prototype.interval = function(json) {
      var _this = this;
      _this.key = setInterval(function() {
        _this.animatePrev(json);
      }, json.showTime);
    };
    //清除动画、定时器
    banner.prototype.clearInterval = function() {
      $(".dmui-banner-ul", this.$box).stop(true);
      clearInterval(this.key);
      this.key = null;
    };
    //向右滑动动画
    banner.prototype.animatePrev = function(json) {
      var _this = this;
      $(".dmui-banner-lamp>i", this.$box).removeClass("active").eq($(".dmui-banner-li", _this.$box).eq(1).attr("data-index")).addClass("active");
      $(".dmui-banner-ul", this.$box).animate({
        left: ("-" + _this.$box.css("width"))
      }, json.transitionTime, function() {
        $(".dmui-banner-ul", _this.$box).append($(".dmui-banner-li", _this.$box).eq(0).remove()).css("left", "0");
      })
    };
    //向左滑动动画
    banner.prototype.animateNext = function(json) {
      var _this = this;
      $(".dmui-banner-lamp>i", this.$box).removeClass("active").eq($(".dmui-banner-li", _this.$box).eq(json.data.length - 1).attr("data-index")).addClass("active");
      $(".dmui-banner-ul", _this.$box).prepend($(".dmui-banner-li", _this.$box).eq(json.data.length - 1).remove()).css({
        left: ("-" + _this.$box.css("width"))
      }).animate({
        left: 0
      }, json.transitionTime)
    };
    //手动操作向右
    banner.prototype.operPrev = function(json) {
      this.clearInterval();
      this.animatePrev(json);
      this.interval(json);
    };
    //手动操作向左
    banner.prototype.operNext = function(json) {
      this.clearInterval();
      this.animateNext(json);
      this.interval(json);
    };
    //事件注册
    banner.prototype.event = function() {
      var _this = this;
      $(".dmui-banner-prev", _this.$box).click(function() {
        _this.operNext(json);
      });
      $(".dmui-banner-next", _this.$box).click(function() {
        _this.operPrev(json);
      });
      _this.$box.on("touchstart", function(e) {
        e.preventDefault();
        _this.startX = e.originalEvent.changedTouches[0].pageX;
        _this.startY = e.originalEvent.changedTouches[0].pageY;
      });
      _this.$box.on("touchmove", function(e) {
        e.preventDefault();
        _this.moveEndX = e.originalEvent.changedTouches[0].pageX;
        _this.moveEndY = e.originalEvent.changedTouches[0].pageY;
        _this.X = _this.moveEndX - _this.startX;
        _this.Y = _this.moveEndY - _this.startY;
      });
      _this.$box.on("touchend", function(e) {
        if (_this.X > 0) {
          _this.operNext(json);
        } else if (_this.X < 0) {
          _this.operPrev(json);
        } else {
          //单击跳转
          var url = json.data[$(".dmui-banner-li", _this.$box).eq(0).attr("data-index")].href;
          if (json.data[$(".dmui-banner-li", _this.$box).eq(0).attr("data-index")].href) {
            $("#linkTarget")[0] || $("body").append("<a id='linkTarget' class='fix' style='width:20px;height:20px;display:block !important;' href='" +
              url + "'  target='_blank'>&nbsp;</a>");
            var openLink = $("#linkTarget");
            openLink.attr('href', url);
            openLink[0].click();
          }
        }
      });
    };

    //实例化并启动
    var B = new banner(json);
    B.init(json);

  }
});